//
// Created by zhengjuping on 2025/3/7.
//

#include "crc_check.h"



//********************************************************************
//函数名称：Crc8_Calculate
//功 能：CRC8 计算，初值：0xFF，多项式：0x31(x8 + x5 + x4 + 1)
//参 数：unsigned char *dat：需要校验数据的首地址；
// unsigned char Num：CRC 校验数据长度
//返 回：crc：计算出的校验值
//********************************************************************
uint8_t Crc8_Calculate(uint8_t *dat, uint8_t Num) {
    unsigned char i, byte, crc=0xFF;

    for(byte=0; byte<Num; byte++)
    {
        crc^=(dat[byte]);
        for(i=0;i<8;i++)
        {
            if(crc & 0x80)
                crc=(crc<<1)^0x31;
            else
                crc=(crc<<1);
        }
    }
    return crc;
}